const config = require('../configs'),
  Router = require('koa-router'),
  router = new Router({
    prefix: config.app.routerBaseApi
  }),
  Category = require('../controllers/category.js'),
  Article = require('../controllers/article.js'),
  Tag = require('../controllers/tag.js'),
  User = require('../controllers/user.js'),
  Me = require('../controllers/me.js'),
  checkToken = require('../middlewares/checkToken.js');

/**
 * HTTP动词
 * GET // 查询
 * POST // 新建
 * PUT // 替换
 * PATCH // 更新部分属性
 * DELETE // 删除指定ID的文档
 */

router
  .get('/articles/:id', Article.getArticleById) // 获取单个文章
  .post('/articles', checkToken, Article.createArticle) // 创建文章
  .delete('/articles/:id', checkToken, Article.deleteArticleById) // 删除文章
  .patch('/articles/:id', checkToken, Article.modifyArticle) // 修改文章
  .get('/allArticles', checkToken, Article.getAllArticles) // 获取所有文章
  .get('/articles', Article.getAllPublishedArticles) // 获取所以已发布的文章（前台使用）
  .patch('/pubArticles/:id', checkToken, Article.ifPublishArticle) // 发布或不发布文章

  .post('/tags', checkToken, Tag.createTag) // 创建标签
  .get('/tags', Tag.getAllTags) // 获取所有标签
  .patch('/tags/:id', checkToken, Tag.modifyTag) // 修改单个标签
  .delete('/tags/:id', checkToken, Tag.deleteTag) // 删除单个标签

  .post('/createCategory', checkToken, Category.createCategory) // 创建分类
  .get('/getAllCategorys', Category.getAllCategorys) // 获取所有分类
  .patch('/modifyCategory/:id', checkToken, Category.modifyCategory) // 修改单个分类
  .delete('/deleteCategory/:id', checkToken, Category.deleteCategory) // 删除单个分类

  .post('/login', User.login) // 用户登录
  // .post('/logout', checkToken, User.logout) 用户登出（前台删除token即可）
  // .post('/modifyUser', checkToken, User.updateUserMes) // 更改用户信息
  // .post('/modifyPwd', checkToken, User.resetPwd) // 更改用户密码

  .get('/me', Me.getMeInfo) // 获取个人信息
  .patch('/me', checkToken, Me.modifyMeInfo); // 更改个人信息

exports = module.exports = router;


